package com.wondersgroup.esclient.modle;

import java.io.Serializable;

import com.wondersgroup.esclient.emen.QueryCondition;
import com.wondersgroup.esclient.emen.QueryType;

/**
 * ES复合查询，参数传递对象
 * 如果是日期类型的范围查询，默认传递long型
 * 如果是日期类型的范围查询，参数值类型是String，则需要指定日期格式（字段datePattern），否则查询异常
 * @author Walker
 *
 */
public class QueryParam implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 769802621439224721L;
	
	/**
	 * 查询类型字段,如果类型为Range,则oprateType能为空,否则条件无效
	 */
	private QueryType queryType;
	
	/**
	 * 根据那个字段查询,字段名称
	 */
	private String fieldName;
	
	/**
	 * 查询参数值
	 * 如果是日期类型的范围查询，默认传递long型
	 * 如果是日期类型的范围查询，参数值类型是String，则需要指定日期格式，否则查询异常
	 */
	private Object value;
	
	/**
	 * 按照范围查询时,查询条: 大于  等于  小于...
	 * queryType为Range时,该字段不能为空
	 */
	private QueryCondition queryCondition;
	
	/**
	 * 日期格式
	 */
	private String datePattern;
	

	public QueryParam() {
		super();
	}

	public QueryParam(QueryType queryType, String fieldName, Object value) {
		super();
		this.queryType = queryType;
		this.fieldName = fieldName;
		this.value = value;
	}

	public QueryParam(QueryType queryType, String fieldName, Object value, QueryCondition queryCondition) {
		super();
		this.queryType = queryType;
		this.fieldName = fieldName;
		this.value = value;
		this.queryCondition = queryCondition;
	}

	public QueryType getQueryType() {
		return queryType;
	}

	public void setQueryType(QueryType queryType) {
		this.queryType = queryType;
	}

	public String getFieldName() {
		return fieldName;
	}

	public void setFieldName(String fieldName) {
		this.fieldName = fieldName;
	}

	public Object getValue() {
		return value;
	}

	public void setValue(Object value) {
		this.value = value;
	}

	public QueryCondition getQueryCondition() {
		return queryCondition;
	}

	public void setQueryCondition(QueryCondition queryCondition) {
		this.queryCondition = queryCondition;
	}

	public String getDatePattern() {
		return datePattern;
	}

	public void setDatePattern(String datePattern) {
		this.datePattern = datePattern;
	}
	

}
